package com.kantboot.functional.pay.order.service;

import com.kantboot.functional.pay.order.domian.dto.FunctionPayOrderDTOOfOrderPaidAfter;
import com.kantboot.functional.pay.order.domian.dto.GeneratePayOrderDTO;
import com.kantboot.functional.pay.order.domian.entity.FunctionalPayOrder;

import java.util.List;

public interface IFunctionalPayOrderService {

    /**
     * 生产订单
     */
    FunctionalPayOrder generatePayOrder(GeneratePayOrderDTO dto);

    /**
     * 根据id查询支付订单
     */
    FunctionalPayOrder getById(Long id);

    /**
     * 根据id查询未支付的支付订单
     */
    FunctionalPayOrder getUnpaidById(Long id);

    /**
     * 根据id修改状态码
     */
    void updateStatusCodeById(Long id, String statusCode);

    /**
     * 根据id修改支付方式码
     */
    void updatePayMethodCodeById(Long id, String payMethodCode);

    /**
     * 对于支付后的处理
     */
    void handlePaidAfter(FunctionPayOrderDTOOfOrderPaidAfter dto);

    /**
     * 检查订单支付后的处理是否成功
     */
    Boolean checkPaidAfterSuccess(Long id);


    List<FunctionalPayOrder> queryUnPayOrder();

}
